package top.infopub.mgr.bpa.dao;

import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import top.infopub.dto.bpa.ContractInfoDto;
import top.infopub.mgr.bpa.vo.BpaPrimarySureVo;
import top.infopub.model.bpa.PrimarySure;

import java.util.List;

/**
 * 产值确权主表 dao layer interface <br/>
 *
 * @author  TODO <br/>
 * @date    2021-06-10 22:55:30 <br/>
 * @since   1.0 <br/>
 */
public interface BpaPrimarySureDao {

	/**
     * 新增数据 <br>
     * @param primarySure BPA_PRIMARY_SURE 参数对象  <br>
     * @return 新增的数据条数
     */
	int insert(PrimarySure primarySure);

	/**
     * 根据主键删除数据 <br>
     * @param id 产值确权主表  <br>
     * @return 删除的数据条数
     */
    int deleteByPrimaryKey(String id);

	/**
     * 根据主键更新数据 <br>
     * @param primarySure BPA_PRIMARY_SURE 参数对象  <br>
     * @return 更新的数据条数
     */
    int updateByPrimaryKey(PrimarySure primarySure);

	/**
     * 根据主键查询数据 <br>
     * @param id 产值确权主表  <br>
     * @return PrimarySure 数据对象
     */
	PrimarySure selectOne(String id);

	/**
     * 根据传入参数查询数据列表 <br>
     * @param bpaPrimarySure BPA_PRIMARY_SURE 参数对象  <br>
     * @return 符合条件的数据集合
     */
	Page<BpaPrimarySureVo> selectList(BpaPrimarySureVo bpaPrimarySure);

	/**
     * 统计符合条件的数据数量 <br>
     * @param bpaPrimarySure BPA_PRIMARY_SURE 参数对象  <br>
     * @return 符合条件的数据总数
     */
    int selectCount(BpaPrimarySureVo bpaPrimarySure);

	/**
	 * 根据不同表名查询合同ID和名称
	 * @param tableName
	 * @return
	 */
	List<ContractInfoDto> queryContractInfoList(@Param("tableName") String tableName, @Param("proCode") String proCode);
}